Reparent AmbiguousOutputError onto AttributeError #595
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Just conceptually errors being raised from
__getattr__
ought to be this way anyhow, notValueError
. But more importantly, raising aValueError
instead of anAttributeError
meant that the builtinhasattr
method couldn't properly returnFalse
when the lookup failed due to not having an unambiguous.channel
attribute to which to delegate the lookup.Since we redirect
__getitem__
to__getattr__
, maybeAmbiguousOutputError
should have dual inheritance withAttributeError
andKeyError
. However, this PR is really to address the key problem thathasattr
is failing. Since I didn't have to touch the rest of the test suite, it seems to have accomplished it without any other side effects. I'd like to delay further modifications until a clear need appears.